package com.sharp.kernel.mybatis.dao.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.persistence.*;
import lombok.Data;

 /**
 * Title: Columns
 * Description: Copyright: Copyright (c) 2022 Company: Sharp Ltd.
 *
 * @author Sharp
 * @date 2022/09/26 23:28
 */
@ApiModel(value="`COLUMNS`")
@Data
@Table(name = "INFORMATION_SCHEMA.`COLUMNS`")
public class Columns {
    @Column(name = "TABLE_CATALOG")
    @ApiModelProperty(value="")
    private String tableCatalog;

    @Column(name = "TABLE_SCHEMA")
    @ApiModelProperty(value="")
    private String tableSchema;

    @Column(name = "`TABLE_NAME`")
    @ApiModelProperty(value="")
    private String tableName;

    @Column(name = "`COLUMN_NAME`")
    @ApiModelProperty(value="")
    private String columnName;

    @Column(name = "ORDINAL_POSITION")
    @ApiModelProperty(value="")
    private Long ordinalPosition;

    @Column(name = "COLUMN_DEFAULT")
    @ApiModelProperty(value="")
    private String columnDefault;

    @Column(name = "IS_NULLABLE")
    @ApiModelProperty(value="")
    private String isNullable;

    @Column(name = "DATA_TYPE")
    @ApiModelProperty(value="")
    private String dataType;

    @Column(name = "CHARACTER_MAXIMUM_LENGTH")
    @ApiModelProperty(value="")
    private Long characterMaximumLength;

    @Column(name = "CHARACTER_OCTET_LENGTH")
    @ApiModelProperty(value="")
    private Long characterOctetLength;

    @Column(name = "NUMERIC_PRECISION")
    @ApiModelProperty(value="")
    private Long numericPrecision;

    @Column(name = "NUMERIC_SCALE")
    @ApiModelProperty(value="")
    private Long numericScale;

    @Column(name = "DATETIME_PRECISION")
    @ApiModelProperty(value="")
    private Long datetimePrecision;

    @Column(name = "`CHARACTER_SET_NAME`")
    @ApiModelProperty(value="")
    private String characterSetName;

    @Column(name = "`COLLATION_NAME`")
    @ApiModelProperty(value="")
    private String collationName;

    @Column(name = "COLUMN_TYPE")
    @ApiModelProperty(value="")
    private String columnType;

    @Column(name = "COLUMN_KEY")
    @ApiModelProperty(value="")
    private String columnKey;

    @Column(name = "EXTRA")
    @ApiModelProperty(value="")
    private String extra;

    @Column(name = "`PRIVILEGES`")
    @ApiModelProperty(value="")
    private String privileges;

    @Column(name = "COLUMN_COMMENT")
    @ApiModelProperty(value="")
    private String columnComment;

    @Column(name = "GENERATION_EXPRESSION")
    @ApiModelProperty(value="")
    private String generationExpression;
}
